﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;

namespace az
{
    /// <summary>
    /// klasa wierzchołek
    /// </summary>
    [Serializable]
    public class Vertex : IComparable
    {
        /// <summary>
        /// lista wierzchołków połączonych bezpośrednio z tym wierzchołkiem
        /// </summary>
        public List<Vertex> listVertexNeighbor = new List<Vertex>();
        /// <summary>
        /// lista krawędzi połączonych bezpośrednio z tym wierzcholkiem
        /// </summary>
        public List<Edge> listEdgeConnected = new List<Edge>();
        /// <summary>
        /// numer id wierzchołka
        /// </summary>
        public int number;
        /// <summary>
        /// numer koloru dla wierzchołka  - TU BĘDZIE INFORMACJA JAKI KOLOR MA WIERZCHOŁEK
        /// </summary>
        public int numberColor = 0;
        /// <summary>
        /// liczba sąsiadujących wierzchołków - STOPIEŃ WIERZCHOŁKA
        /// </summary>
        public int countVertexNeighbour = 0;
        /// <summary>
        /// punkt na ekranie
        /// </summary>
        public Point point;

        public Vertex(int nr, int x, int y)
        {
            this.number = nr;
            point = new Point(x,y);
        }

        public int CompareTo(object obj)
        {
            Vertex v = (Vertex) obj;
            if (this.countVertexNeighbour < v.countVertexNeighbour)
                return 1;
            if (this.countVertexNeighbour > v.countVertexNeighbour)
                return -1;
            return 0;
        }
    }
}
